﻿using System;
using UnityEngine;
public static class GlobalMembersMain
{
//	// ****************************************************************************
//	// * Punch And Kick -- a simple 2D Fighting Game.
//	// *
//	// * Copyright (C) 2013 by
//	// * Liu Chao
//	// *
//	// * This file is part of the Punch And Kick project, and may only be used,
//	// * modified, and distributed under the terms of the GPLv2.
//	// *
//	// * (GPLv2 is abbreviation of GNU General Public License Version 2)
//	// *
//	// * By continuing to use, modify, or distribute this file you indicate that you
//	// * have read the license and understand and accept it fully.
//	// *
//	// * The Punch And Kick project is distributed in the hope that it will be
//	// * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 
//	// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GPL v2 for
//	// * more details.
//	// *
//	// * You should have received a copy of the GPLv2 along with this file. It is
//	// * usually in the LICENSE.TXT file, If not, see <http://www.gnu.org/licenses/>.
//	// * **************************************************************************

//	// ****************************************************************************
//	// * Punch And Kick -- 一个普通的2D格斗游戏
//	// *
//	// * 版权所有 (C) 2013 归属于
//	// * 刘超
//	// *
//	// * 这个文件是 Punch And Kick 项目的一部分，并且只可以根据GPLv2许可协议来使用、
//	// * 更改和发布。
//	// *
//	// * (GPLv2 是 GNU通用公共许可证第二版 的英文缩写)
//	// *
//	// * 继续使用、修改或发布本文件，表明您已经阅读并完全理解和接受这个许可协议。
//	// *
//	// * Punch And Kick 项目是基于技术交流目的而加以散布的，但不负任何担保责任，例
//	// * 如：稳定性、可玩性、趣味性等的担保，甚至没有适销性或特定用途的隐含担保，详
//	// * 情请参照GPLv2许可协议。
//	// *
//	// * 您应已收到附随于本文件的GPLv2许可协议的副本，它通常在LICENSE.TXT文件中，如果
//	// * 没有，请查看：<http://www.gnu.org/licenses/>.
//	// * **************************************************************************

//	//public static string SKIP_BOOT_SCREEN
//	////public static string I_NEED_WINMAIN



//	//////C++ TO C# CONVERTER NOTE: The following public static string macro was replaced in-line:
//	//////ORIGINAL LINE: public static string TEXT_COPYRIGHT_EN ="Developed by LC-Games, Copyright © 2013 LC-Games, All Rights Reserved."
//	////public static string TEXT_COPYRIGHT_EN
//	//////C++ TO C# CONVERTER NOTE: The following public static string macro was replaced in-line:
//	//////ORIGINAL LINE: public static string TEXT_COPYRIGHT_CN ="本游戏由 LC-Games 开发 , LC-Games 保留所有权利。"
//	////public static string TEXT_COPYRIGHT_CN

//	internal static LCUI_Thread main_thread_id = new LCUI_Thread();
//	internal static  LCUI_Widget_ *player_status_area = new ();

//	//* 在屏幕上显示游戏启动时的画面 
//	internal static void Game_ShowBootScreen()
//	{
//		byte alpha;
//		LCUI_Graph_ img_game_logo = new LCUI_Graph_();
//		LCUI_Graph_ bg = new LCUI_Graph_();
//		LCUI_Widget_ wdg_img_logo;
//		LCUI_Widget_ wdg_copyright_cn_text;
//		LCUI_Widget_ wdg_copyright_en_text;

//		wdg_img_logo = Widget_New(null);
//		wdg_copyright_cn_text = Widget_New("labe=");
//		wdg_copyright_en_text = Widget_New("labe=");

//		Graph_Init(img_game_logo);
//		Graph_Init(bg);
//		GameGraphRes_GetGraph(DefineConstantsMain.MAIN_RES, "main-logo", img_game_logo);
//		GameGraphRes_GetGraph(DefineConstantsMain.MAIN_RES, "background-image", bg);

//		Label_TextW(wdg_copyright_en_text, "Developed by LC-Games, Copyright © 2013 LC-Games, All Rights Reserved.");
//		Label_TextW(wdg_copyright_cn_text, "本游戏由 LC-Games 开发 , LC-Games 保留所有权利。");

//		Widget_Resize(wdg_img_logo, Graph_GetSize(img_game_logo));

//		Widget_SetAlign(wdg_copyright_cn_text, ALIGN_TYPE_.ALIGN_BOTTOM_CENTER, Pos(0,-20));
//		Widget_SetAlign(wdg_copyright_en_text, ALIGN_TYPE_.ALIGN_BOTTOM_CENTER, Pos(0,-40));
//		Widget_SetAlign(wdg_img_logo, ALIGN_TYPE_.ALIGN_MIDDLE_CENTER, Pos(0,0));

//		Widget_SetBackgroundImage(wdg_img_logo, img_game_logo);
//		Widget_SetBackgroundLayout(wdg_img_logo, LAYOUT_CENTER);
//		Widget_SetBackgroundImage(RootWidget_GetSelf(), bg);
//		Widget_SetBackgroundLayout(RootWidget_GetSelf(), LAYOUT_TILE);
//		Widget_SetBackgroundTransparent(RootWidget_GetSelf(), DefineConstantsMain.FALSE);

//		Widget_SetAlpha(wdg_img_logo, 0);
//		Widget_SetAlpha(wdg_copyright_cn_text, 0);
//		Widget_SetAlpha(wdg_copyright_en_text, 0);

//		Widget_Show(wdg_img_logo);
//		Widget_Show(wdg_copyright_en_text);
//		Widget_Show(wdg_copyright_cn_text);
//	#if ! SKIP_BOOT_SCREEN
//		// 以淡入淡出的效果显示LOGO 
//		for(alpha =0; alpha<250; alpha+=10)
//		{
//			Widget_SetAlpha(wdg_img_logo, alpha);
//			Widget_SetAlpha(wdg_copyright_en_text, alpha);
//			Widget_SetAlpha(wdg_copyright_cn_text, alpha);
//			LCUI_MSleep(25);
//		}
//		Widget_SetAlpha(wdg_img_logo, 255);
//		Widget_SetAlpha(wdg_copyright_cn_text, 255);
//		Widget_SetAlpha(wdg_copyright_en_text, 255);
//		LCUI_Sleep(2);
//		for(alpha =255; alpha>5; alpha-=10)
//		{
//			Widget_SetAlpha(wdg_img_logo, alpha);
//			Widget_SetAlpha(wdg_copyright_en_text, alpha);
//			Widget_SetAlpha(wdg_copyright_cn_text, alpha);
//			LCUI_MSleep(25);
//		}
//	//#endif
//		Widget_SetAlpha(wdg_img_logo, 0);
//		Widget_SetAlpha(wdg_copyright_cn_text, 0);
//		Widget_SetAlpha(wdg_copyright_en_text, 0);
//		Widget_Hide(wdg_img_logo);
//		Widget_Hide(wdg_copyright_en_text);
//		Widget_Hide(wdg_copyright_cn_text);

//		Widget_Destroy(wdg_img_logo);
//		Widget_Destroy(wdg_copyright_en_text);
//		Widget_Destroy(wdg_copyright_cn_text);
//	}

//	//* 加入CPU玩家角色 
//	internal static void Game_AddCPUPlayerRole(int battle_id, int[] role_id)
//	{
//		int i;
//		int j;

//		for(j =2; j<5; ++j)
//		{
//			while(1)
//			{
//				// 随机选择一个角色 
//				role_id[j-1] = RandomNumbers.NextNumber()%RoleID.TOTAL_ROLE_NUM;
//				// 检查是否与前面几个角色的ID相同 
//				for(i =1; i<j; ++i)
//				{
//					if(role_id[j-1] == role_id[i-1])
//					{
//						break;
//					}
//				}
//				if(i>=j)
//				{
//					break;
//				}
//			}
//		}
//	}

//	//* 在演示对战场景中放置玩家（设置玩家位置） 
//	internal static void GameDemoScene_PutPlayer(int battle_id)
//	{
//		int x;
//		int y;
//		LCUI_Pos_ start_pos = new LCUI_Pos_();
//		LCUI_Size_ scene_size = new LCUI_Size_();
//		GamePlayer_[] player = new GamePlayer_[2];

//		player[0] = GameBattle_GetPlayer(battle_id, 1);
//		player[1] = GameBattle_GetPlayer(battle_id, 2);
//		//GameObject_SetFillColor( player[0]->object, TRUE, RGB(0,0,0) );
//		//GameObject_SetFillColor( player[1]->object, TRUE, RGB(0,0,0) );
//		//GameObject_SetShadowVisible( player[0]->object, FALSE );
//		//GameObject_SetShadowVisible( player[1]->object, FALSE );
//		GameBattle_GetSceneLand(battle_id, start_pos, scene_size);
//		x = scene_size.w/2 - 150;
//		y = scene_size.h/2;
//		GameObject_SetX(player[0].object_, start_pos.x+x);
//		GameObject_SetX(player[1].object_, start_pos.x+x+300);
//		GameObject_SetY(player[0].object_, start_pos.y+y);
//		GameObject_SetY(player[1].object_, start_pos.y+y);
//		GamePlayer_SetRightOriented(player[0]);
//		GamePlayer_SetLeftOriented(player[1]);
//		GamePlayer_SetStart(player[0]);
//		GamePlayer_SetStart(player[1]);
//	}

//	//* 演示对战的线程 
//internal static void Game_DemoThread(IntPtr arg)
//{
//    int battle_id;
//    LCUI_Size_ scene_size = new LCUI_Size_();
//    LCUI_Widget_ demo_scene;

//    scene_size.w = 800;
//    scene_size.h = 600;
//    battle_id = (int)arg;
//    // 设置对战场景的地面参数 
//    GameBattle_SetSceneLand(battle_id, Pos(50, 400), Size(700, 10));
//    // 设置对战场景的大小 
//    GameBattle_SetSceneSize(battle_id, scene_size);
//    // 获取对战场景 
//    demo_scene = GameBattle_GetScene(battle_id);
//    // 设置对战场景的z-index值 
//    Widget_SetZIndex(demo_scene, -10);
//    // 设置对战场景不可被点击 
//    Widget_SetClickableAlpha(demo_scene, 0, 0);
//    // 将演示对战的对战场景加入至主界面 
//    Widget_Container_Add(Game_GetMainUI(), demo_scene);
//    // 设置两个对战角色，由AI控制 
//    GameBattle_SetPlayer(battle_id, 1, RoleID.ROLE_KUNIO, DefineConstantsMain.FALSE);
//    GameBattle_SetPlayer(battle_id, 2, RoleID.ROLE_RIKI, DefineConstantsMain.FALSE);
//    // 启用这两个对战角色 
//    GameBattle_EnablePlayer(battle_id, 1, DefineConstantsMain.TRUE);
//    GameBattle_EnablePlayer(battle_id, 2, DefineConstantsMain.TRUE);
//    // 设置这两个对战角色为无敌 
//    GameBattlePlayer_SetInvincible(battle_id, 1, DefineConstantsMain.TRUE);
//    GameBattlePlayer_SetInvincible(battle_id, 2, DefineConstantsMain.TRUE);
//    // 放置这两个对战角色 
//    GameDemoScene_PutPlayer(battle_id);
//    // 开始游戏对战 
//    GameBattle_Start(battle_id);
//    // 显示对战场景 
//    Widget_Show(demo_scene);
//    // 进入游戏对战处理循环 
//    GameBattle_Loop(battle_id);
//}

//	//* 初始化游戏角色的位置 
//	internal static void Game_InitPlayerPos(int battle_id)
//	{
//		int x;
//		int y;
//		GamePlayer_[] p_player = new GamePlayer_[4];
//		LCUI_Pos_ land_pos = new LCUI_Pos_();
//		LCUI_Size_ land_size = new LCUI_Size_();
//		// 获取4个游戏角色 
//		p_player[0] = GameBattle_GetPlayer(battle_id, 1);
//		p_player[1] = GameBattle_GetPlayer(battle_id, 2);
//		p_player[2] = GameBattle_GetPlayer(battle_id, 3);
//		p_player[3] = GameBattle_GetPlayer(battle_id, 4);
//		// 获取对战场景的地面参数 
//		GameBattle_GetSceneLand(battle_id, land_pos, land_size);
//		// 计算并设置游戏角色的位置 
//		x = land_size.w/2 - 150;
//		GameObject_SetX(p_player[0].object_, land_pos.x+x);
//		GameObject_SetX(p_player[1].object_, land_pos.x+x-50);
//		x = land_size.w/2 + 150;
//		GameObject_SetX(p_player[2].object_, land_pos.x+x);
//		GameObject_SetX(p_player[3].object_, land_pos.x+x+50);
//		y = land_size.h/2;
//		GameObject_SetY(p_player[0].object_, land_pos.y+y-50);
//		GameObject_SetY(p_player[1].object_, land_pos.y+y+50);
//		GameObject_SetY(p_player[2].object_, land_pos.y+y-50);
//		GameObject_SetY(p_player[3].object_, land_pos.y+y+50);
//		// 改变游戏角色的朝向 
//		GamePlayer_SetRightOriented(p_player[0]);
//		GamePlayer_SetRightOriented(p_player[1]);
//		GamePlayer_SetLeftOriented(p_player[2]);
//		GamePlayer_SetLeftOriented(p_player[3]);
//	}

//	//* 更新游戏角色的状态栏 
//	internal static void Game_UpdatePlayerStatusBar(int battle_id)
//	{
//		int i;
//		RoleInfo_ p_role_info;
//		char[] player_type_name = new char[5];
//		GamePlayer_[] p_player = new GamePlayer_[4];
//		LCUI_Graph_ img_avatar = new LCUI_Graph_();

//		Graph_Init(img_avatar);
//		// 从主资源中获取头像 
//		GameGraphRes_GetGraph(DefineConstantsMain.MAIN_RES, "avatar-unknown", img_avatar);
//		p_player[0] = GameBattle_GetPlayer(battle_id, 1);
//		p_player[1] = GameBattle_GetPlayer(battle_id, 2);
//		p_player[2] = GameBattle_GetPlayer(battle_id, 3);
//		p_player[3] = GameBattle_GetPlayer(battle_id, 4);
//		// 根据这4个游戏角色的属性，设置状态栏上显示的内容 
//		for(i =0; i<4; ++i)
//		{
//			if(p_player[i].human_control)
//			{
//				player_type_name[0] = '1'+i;
//				player_type_name[1] = 'P';
//				player_type_name[2] = 0;
//			}
//			else
//			{
//				player_type_name[0] = 'C';
//				player_type_name[1] = 'P';
//				player_type_name[2] = 'U';
//				player_type_name[3] = 0;
//			}
//			p_role_info = Game_GetRoleInfo(p_player[i].role_id);
//			// 设置头像 
//			StatusBar_SetAvatar(p_player[i].statusbar, img_avatar);
//			// 设置显示的角色名 
//			StatusBar_SetPlayerNameW(p_player[i].statusbar, p_role_info.name);
//			// 设置角色类型名 
//			StatusBar_SetPlayerTypeNameW(p_player[i].statusbar, player_type_name);
//			// 设置血量 
//			StatusBar_SetHealth(p_player[i].statusbar, p_player[i].property.cur_hp);
//			StatusBar_SetMaxHealth(p_player[i].statusbar, p_player[i].property.max_hp);
//			// 显示状态栏 
//			Widget_Show(p_player[i].statusbar);
//		}
//	}

//	//* 定时更新显示FPS 
//	internal static void UpdateViewFPS(IntPtr arg)
//	{
//		string str = new string(new char[10]);
//		LCUI_Widget_ label = (LCUI_Widget_)arg;
//		str = string.Format("FPS: {0:D}", LCUIScreen_GetFPS());
//		Label_Text(label, str);
//	}

//	internal static int timer_update_scene_text = -1;

//	internal static void Game_DestroySceneText()
//	{
//		LCUITimer_Free(timer_update_scene_text);
//	}

//	//* 初始化对战场景中显示的文本 
//	internal static void Game_InitSceneText(LCUI_Widget_ scene)
//	{
//		LCUI_Widget_ text;
//		LCUI_Widget_ fps_text;
//		_LCUI_TextStyle style = new _LCUI_TextStyle();

//		text = Widget_New("labe=");
//		fps_text = Widget_New("labe=");
//		Widget_Container_Add(scene, text);
//		Widget_Container_Add(scene, fps_text);
//		TextStyle_Init(style);
//		TextStyle_FontSize(style, 18);
//		Label_TextStyle(fps_text, style);
//		Widget_SetAlign(text, ALIGN_TYPE_.ALIGN_TOP_CENTER, Pos(0,40));
//		Widget_SetAlign(fps_text, ALIGN_TYPE_.ALIGN_TOP_CENTER, Pos(0,100));
//		Label_TextW(text, "<size=42px>游戏测试</size>");
//		Widget_SetZIndex(fps_text, -5000);
//		Widget_SetZIndex(text, -5000);
//		Widget_Show(fps_text);
//		Widget_Show(text);
//		// 创建定时器，每隔0.5秒更新显示的FPS 
//		timer_update_scene_text = LCUITimer_Set(500, UpdateViewFPS, fps_text, DefineConstantsMain.TRUE);
//	}

//	//* 显示游戏角色状态区域 
//	internal static void Game_ShowPlayerStatusArea()
//	{
//		Widget_Show(player_status_area);
//	}

//	//* 销毁游戏角色状态区域 
//	internal static void Game_DestroyPlayerStatusArea()
//	{
//		Widget_Destroy(player_status_area);
//	}

//	//* 初始化游戏角色状态区域 
//	internal static int Game_InitPlayerStatusArea(int battle_id)
//	{
//		GamePlayer_[] p_player = new GamePlayer_[4];

//		p_player[0] = GameBattle_GetPlayer(battle_id, 1);
//		p_player[1] = GameBattle_GetPlayer(battle_id, 2);
//		p_player[2] = GameBattle_GetPlayer(battle_id, 3);
//		p_player[3] = GameBattle_GetPlayer(battle_id, 4);

//		player_status_area = Widget_New(null);
//		// 设置状态区的背景 
//		Widget_SetBackgroundColor(player_status_area, RGB(240,240,240));
//		Widget_SetBackgroundTransparent(player_status_area, DefineConstantsMain.FALSE);
//		// 设置状态区的边框 
//		Widget_SetBorder(player_status_area, Border(1,BORDER_STYLE_SOLID,RGB(150,150,150)));
//		// 设置状态区的尺寸 
//		Widget_Resize(player_status_area, Size(800,DefineConstantsMain.STATUS_BAR_HEIGHT));
//		// 设置状态区的位置 
//		Widget_SetAlign(player_status_area, ALIGN_TYPE_.ALIGN_BOTTOM_CENTER, Pos(0,0));
//		// 为每个游戏角色创建对应的状态栏 
//		p_player[0].statusbar = StatusBar_New();
//		p_player[1].statusbar = StatusBar_New();
//		p_player[2].statusbar = StatusBar_New();
//		p_player[3].statusbar = StatusBar_New();
//		// 并将这些状态栏添加至状态区里 
//		Widget_Container_Add(player_status_area, p_player[0].statusbar);
//		Widget_Container_Add(player_status_area, p_player[1].statusbar);
//		Widget_Container_Add(player_status_area, p_player[2].statusbar);
//		Widget_Container_Add(player_status_area, p_player[3].statusbar);
//		// 设置这些状态栏的位置 
//		Widget_SetAlign(p_player[0].statusbar, ALIGN_TYPE_.ALIGN_TOP_LEFT, Pos(5,5));
//		Widget_SetAlign(p_player[1].statusbar, ALIGN_TYPE_.ALIGN_TOP_LEFT, Pos(5+200,5));
//		Widget_SetAlign(p_player[2].statusbar, ALIGN_TYPE_.ALIGN_TOP_LEFT, Pos(5+400,5));
//		Widget_SetAlign(p_player[3].statusbar, ALIGN_TYPE_.ALIGN_TOP_LEFT, Pos(5+600,5));
//		return 0;
//	}

//	//* 向对战中添加更多的CPU玩家 
//	internal static void Game_AddMoreCPUPlayer(int battle_id)
//	{
//		int i;
//		int x;
//		int y;
//		LCUI_Pos_ land_pos = new LCUI_Pos_();
//		LCUI_Size_ land_size = new LCUI_Size_();
//		GamePlayer_ p_player;
//		// 获取对战场景的地面参数 
//		GameBattle_GetSceneLand(battle_id, land_pos, land_size);
//		for(i =5; i<30; ++i)
//		{
//			GameBattle_SetPlayer(battle_id, i, RandomNumbers.NextNumber()%5, DefineConstantsMain.FALSE);
//			GameBattle_EnablePlayer(battle_id, i, DefineConstantsMain.TRUE);
//			p_player = GameBattle_GetPlayer(battle_id, i);
//			x = land_pos.x + RandomNumbers.NextNumber()%land_size.w;
//			y = land_pos.y + RandomNumbers.NextNumber()%land_size.h;
//			GameObject_SetX(p_player.object_, x);
//			GameObject_SetY(p_player.object_, y);
//		}
//	}

//	internal static int Game_InitFight(int[] role_id)
//	{
//		int ret;
//		int battle_id;
//		LCUI_Graph_ stage_img = new LCUI_Graph_();
//		LCUI_Pos_ land_pos = new LCUI_Pos_();
//		ControlKey_ ctrlkey = new ControlKey_();
//		LCUI_Size_ land_size = new LCUI_Size_();
//		LCUI_Size_ scene_size = new LCUI_Size_();

//		ret = GameGraphRes_LoadFromFile("scenes.data");
//		if(ret != 0)
//		{
//			LCUI_MessageBoxW(MB_ICON_ERROR, "场景资源载入出错，请检查程序的完整性！", "错误", MB_BTN_OK);
//			return ret;
//		}

//		Graph_Init(stage_img);
//		// 载入战斗场景的图形资源 
//		GameGraphRes_GetGraph(DefineConstantsMain.SCENES_RES, "default", stage_img);

//		battle_id = GameBattle_New();
//		scene_size = Graph_GetSize(stage_img);
//		land_pos.x = 20;
//		land_pos.y = 268;
//		land_size.w = scene_size.w - 2 *land_pos.x;
//		land_size.h = scene_size.h - land_pos.y;

//		GameBattle_SetSceneBackground(battle_id, stage_img);
//		GameBattle_SetSceneSize(battle_id, scene_size);
//		GameBattle_SetSceneLand(battle_id, land_pos, land_size);

//		Game_AddCPUPlayerRole(battle_id, role_id);
//		GameBattle_SetPlayer(battle_id, 1, role_id[0], DefineConstantsMain.TRUE);
//		GameBattle_SetPlayer(battle_id, 2, role_id[1], DefineConstantsMain.FALSE);
//		GameBattle_SetPlayer(battle_id, 3, role_id[2], DefineConstantsMain.FALSE);
//		GameBattle_SetPlayer(battle_id, 4, role_id[3], DefineConstantsMain.FALSE);
//		GameBattle_EnablePlayer(battle_id, 1, DefineConstantsMain.TRUE);
//		GameBattle_EnablePlayer(battle_id, 2, DefineConstantsMain.TRUE);
//		GameBattle_EnablePlayer(battle_id, 3, DefineConstantsMain.TRUE);
//		GameBattle_EnablePlayer(battle_id, 4, DefineConstantsMain.TRUE);

//		//Game_AddMoreCPUPlayer( battle_id );

//		// 设置战斗场景显示的位置 
//		Widget_SetAlign(GameBattle_GetScene(battle_id), ALIGN_TYPE_.ALIGN_BOTTOM_CENTER, Pos(0,-DefineConstantsMain.STATUS_BAR_HEIGHT));
//		// 初始化在场景上显示的文本 
//		Game_InitSceneText(GameBattle_GetScene(battle_id));

//		GameConfig_GetKeyControl(ctrlkey);
//		// 设置1号玩家的控制键 
//		GameBattle_SetPlayerControlKey(battle_id, 1, ctrlkey);

//		Game_InitPlayerStatusArea(battle_id);
//		Game_InitPlayerPos(battle_id);
//		Game_UpdatePlayerStatusBar(battle_id);
//		// 启用自动同步移动镜头 
//		GameBattle_SetAutoSyncCamera(battle_id, DefineConstantsMain.TRUE);
//		// 启用显示数值提示 
//		GameBattle_SetEnableValueTip(battle_id, DefineConstantsMain.TRUE);
//		return battle_id;
//	}

//	//* 显示退出提示框 
//	internal static void Game_ShowQuitTipBox(IntPtr arg1, IntPtr arg2)
//	{
//		int ret;
//		GameBattle_Pause(main_battle_id, DefineConstantsMain.TRUE);
//		ret = LCUI_MessageBoxW(MB_ICON_WARNING, "是否退出本场对战？", "提示", MB_BTN_OKCANCEL);
//		GameBattle_Pause(main_battle_id, DefineConstantsMain.FALSE);
//		if(ret == MB_BTN_IS_OK)
//		{
//			GameBattle_Quit(main_battle_id);
//		}
//	}

//	//* 在游戏的对战场景中对键盘进行响应 
//	private static void Game_ProcKeyboardInBattle(LCUI_Event *event, IntPtr arg)
//	{
//		LCUI_Task task = new LCUI_Task();
//		if(event.type != (int)AnonymousEnum.LCUI_KEYDOWN)
//		{
//			return;
//		}
//		if(event.key.key_code == DefineConstantsMain.LCUIKEY_R)
//		{
//			// 开始录制屏幕指定区域
//			//LCUIScreen_StartRecord( Rect(0,260,320,240) );
//		}
//		if(event.key.key_code != VK_ESCAPE)
//		{
//			return;
//		}
//		//* 准备程序任务 
//		task.id = main_thread_id;
//		task.destroy_arg[0] = DefineConstantsMain.FALSE;
//		task.destroy_arg[1] = DefineConstantsMain.FALSE;
//		task.func = Game_ShowQuitTipBox;
//		task.arg[0] = null;
//		task.arg[1] = null;
//		// 投递至程序任务队列 
//		AppTasks_Add(task);
//	}

//	internal static void Game_StartFight(int battle_id)
//	{
//		int[] connect_id = new int[2];
//		GamePlayer_[] p_player = new GamePlayer_[4];
//		LCUI_Widget_ game_scene;

//		p_player[0] = GameBattle_GetPlayer(battle_id, 1);
//		p_player[1] = GameBattle_GetPlayer(battle_id, 2);
//		p_player[2] = GameBattle_GetPlayer(battle_id, 3);
//		p_player[3] = GameBattle_GetPlayer(battle_id, 4);

//		// 设置游戏角色的初始状态 
//		GamePlayer_SetStart(p_player[0]);
//		GamePlayer_SetStart(p_player[1]);
//		GamePlayer_SetStart(p_player[2]);
//		GamePlayer_SetStart(p_player[3]);

//		game_scene = GameBattle_GetScene(battle_id);
//		Widget_Show(game_scene);
//		Game_ShowPlayerStatusArea();
//		GameBattle_Start(battle_id);
//		// 连接LCUI的按键事件，并保存事件连接的ID 
//		connect_id[0] = LCUISysEvent_Connect(AnonymousEnum.LCUI_KEYUP, Game_ProcKeyboardInBattle, null);
//		connect_id[1] = LCUISysEvent_Connect(AnonymousEnum.LCUI_KEYDOWN, Game_ProcKeyboardInBattle, null);
//		GameBattle_Loop(battle_id);
//		// 根据事件连接的ID，解除事件连接 
//		LCUISysEvent_Disconnect(AnonymousEnum.LCUI_KEYUP, connect_id[0]);
//		LCUISysEvent_Disconnect(AnonymousEnum.LCUI_KEYDOWN, connect_id[1]);
//		Game_DestroySceneText();
//		Game_DestroyPlayerStatusArea();
//	}

//	//* 游戏线程 
//	internal static void Game_MainThread(IntPtr arg)
//	{
//		int[] role_id = new int[4];
//		int demo_battle;
//		LCUI_Thread t = new LCUI_Thread();

//		RandomNumbers.Seed((uint)time(null));
//		// 注册游戏所需的部件类型 
//		GameObject_Register();
//		GameMenuBtn_Register();
//		GameMenu_Register();
//		StatusBar_Register();
//		LifeBar_Regiser();

//		Game_InitAttackLibrary();
//		Game_InitStateActionMap();
//		SkillLibrary_Init();

//		LCUICursor_Hide(); // 隐藏鼠标游标 
//		Game_ShowBootScreen(); // 显示启动画面 
//		LCUICursor_Show(); // 显示鼠标游标 
//		Game_InitMainUI(); // 初始化主菜单界面 
//		Game_ShowMainUI(); // 显示主菜单界面 

//		GameMsgLoopStart();

//		demo_battle = GameBattle_New();
//		LCUIThread_Create(t, Game_DemoThread, (IntPtr)demo_battle);
//		while(1)
//		{
//			role_id[0] = Game_GetSelectedRole();
//			if(role_id[0] == -1)
//			{
//				LCUI_MSleep(100);
//				continue;
//			}
//			// 暂停演示对战 
//			GameBattle_Pause(demo_battle, DefineConstantsMain.TRUE);
//			GameMenu_OnlyShowMainMenu();
//			Game_HideMainUI();
//			main_battle_id = Game_InitFight(role_id);
//			Game_StartFight(main_battle_id);
//			// 继续演示对战 
//			GameBattle_Pause(demo_battle, DefineConstantsMain.FALSE);
//			Game_ShowMainUI();
//		}
//	}

//	#if LCUI_BUILD_IN_WIN32
//	//C++ TO C# CONVERTER WARNING: The following #include directive was ignored:
//	//#include <fcntl.h>

//	// 在运行程序时会打开控制台，以查看打印的调试信息 
//	internal static void InitConsoleWindow()
//	{
//		int hCrt;
//		FILE hf;
//		AllocConsole();
//		hCrt =_open_osfhandle((int)GetStdHandle(STD_OUTPUT_HANDLE),_O_TEXT);
//		hf =_fdopen(hCrt, "w");
//		*stdout= hf;
//		setvbuf (stdout, null, _IONBF, 0);
//		// test code
//		Console.Write ("InitConsoleWindow OK!\n");
//	}
//	//#endif

//	internal static int Game_LoadResource()
//	{
//		int ret;
//		ret = GameGraphRes_LoadFromFile("main.data");
//		if(ret != 0)
//		{
//			LCUI_MessageBoxW(MB_ICON_ERROR, "游戏资源载入出错，请检查程序的完整性！", "错误", MB_BTN_OK);
//			return -1;
//		}
//		ret = GameGraphRes_LoadFromFile("font.data");
//		if(ret != 0)
//		{
//			LCUI_MessageBoxW(MB_ICON_ERROR, "字体资源载入出错，请检查程序的完整性！", "错误", MB_BTN_OK);
//			return -2;
//		}
//		ret = GameGraphRes_LoadFromFile("action-riki.data");
//		ret |= GameGraphRes_LoadFromFile("action-kuni.data");
//		ret |= GameGraphRes_LoadFromFile("action-mike.data");
//		ret |= GameGraphRes_LoadFromFile("action-ben.data");
//		ret |= GameGraphRes_LoadFromFile("action-toraji.data");
//		if(ret != 0)
//		{
//			LCUI_MessageBoxW(MB_ICON_ERROR, "角色资源载入出错，请检查程序的完整性！", "错误", MB_BTN_OK);
//			return -3;
//		}
//		return 0;
//	}

//	internal static int Main(int argc, ref string[] argv)
//	{
//		int ret;
//		int mode;
//		LCUI_Thread t = new LCUI_Thread();
//	//public static string DEBUG
//	#if LCUI_BUILD_IN_WIN32 && DEBUG
//		InitConsoleWindow();
//	//#endif
//		GameConfig_Init(); // 初始化游戏配置数据 
//		GameConfig_Load(); // 载入游戏配置数据 
//		if (GameConfig_IsWindowed() != null) // 如果是要窗口化运行 
//		{
//			mode = DefineConstantsMain.LCUI_INIT_MODE_WINDOW;
//		}
//		else
//		{
//			mode = DefineConstantsMain.LCUI_INIT_MODE_FULLSCREEN;
//		}
//		// 初始化LCUI 
//		LCUI_Init(DefineConstantsMain.GAME_SCREEN_WIDTH, DefineConstantsMain.GAME_SCREEN_HEIGHT, mode);
//		GameGraphRes_Init(); // 初始化游戏资源 
//		ret = Game_LoadResource(); // 载入游戏资源 
//		if(ret != 0)
//		{
//			return -1;
//		}
//		main_thread_id = LCUIThread_SelfID(); // 保存主线程ID 
//		LCUIThread_Create(t, Game_MainThread, null); // 创建游戏线程 
//		return LCUI_Main();
//	}
//}

////----------------------------------------------------------------------------------------
////	Copyright © 2006 - 2009 Tangible Software Solutions Inc.
////	This class can be used by anyone provided that the copyright notice remains intact.
////
////	This class provides the ability to simulate the behavior of the C/C++ functions for 
////	generating random numbers, using the .NET Framework System.Random class.
////	'rand' converts to the parameterless overload of NextNumber
////	'random' converts to the single-parameter overload of NextNumber
////	'randomize' converts to the parameterless overload of Seed
////	'srand' converts to the single-parameter overload of Seed
////----------------------------------------------------------------------------------------
//internal static class RandomNumbers
//{
//	private static System.Random r;

//	internal static int NextNumber()
//	{
//		if (r == null)
//			Seed();

//		return r.Next();
//	}

//	internal static int NextNumber(int ceiling)
//	{
//		if (r == null)
//			Seed();

//		return r.Next(ceiling);
//	}

//	internal static void Seed()
//	{
//		r = new System.Random();
//	}

//	internal static void Seed(int seed)
//	{
//		r = new System.Random(seed);
//	}
}


public  class DefineConstantsGame_control
{
	public static LCUI_BOOL FALSE=false;
	public static LCUI_BOOL TRUE=true;
	public const int MAX_SKILL_NUM=10;

	public static string SKILLNAME_A_ATTACK = "A attack";
	public static string SKILLNAME_B_ATTACK = "B attack";
	public static string SKILLNAME_DEFENSE = "defense";
	public static string SKILLNAME_SOLID_DEFENSE = "solid defense";
	public static string SKILLNAME_JUMP = "jump";
	public static string SKILLNAME_JUMP_A_ATTACK = "jump A attack";
	public static string SKILLNAME_JUMP_B_ATTACK = "jump B attack";
	public static string SKILLNAME_JUMP_MACH_A_ATTACK = "jump mach A attack";
	public static string SKILLNAME_JUMP_MACH_B_ATTACK = "jump mach B attack";
	public static string SKILLNAME_SPRINT_A_ATTACK = "sprint A attack";
	public static string SKILLNAME_SPRINT_B_ATTACK = "sprint B attack";
	public static string SKILLNAME_SPRINT_JUMP_A_ATTACK = "sprint jump A attack";
	public static string SKILLNAME_SPRINT_JUMP_B_ATTACK = "sprint jump B attack";
	public static string SKILLNAME_MACH_A_ATTACK = "mach A attack";
	public static string SKILLNAME_MACH_B_ATTACK = "mach B attack";
	public static string SKILLNAME_A_FINALBLOW = "A final blow";
	public static string SKILLNAME_B_FINALBLOW = "B final blow";
	public static string SKILLNAME_JUMP_ELBOW = "jump elbow";
	public static string SKILLNAME_JUMP_TREAD = "jump tread";
	public static string SKILLNAME_A_LIFT = "A lift";
	public static string SKILLNAME_B_LIFT = "B lift";
	public static string SKILLNAME_A_THROW = "A throw";
	public static string SKILLNAME_B_THROW = "B throw";
	public static string SKILLNAME_MACH_STOMP = "mach stomp";
	public static string SKILLNAME_BOMBKICK = "bomb kick";
	public static string SKILLNAME_SPINHIT = "spin hit";
	public static string SKILLNAME_RIDE = "ride";
	public static string SKILLNAME_RIDE_A_ATTACK = "ride A attack";
	public static string SKILLNAME_RIDE_B_ATTACK = "ride B attack";
	public static string SKILLNAME_CATCH = "catch";
	public static string SKILLNAME_BIG_ELBOW = "big elbow";
	public static string SKILLNAME_GUILLOTINE = "guillotine";
	public static string SKILLNAME_PUSH = "push";
	public static string SKILLNAME_JUMP_SPINKICK = "jump spin kick";
	public static string SKILLNAME_TORNADO_ATTACK = "tornado_attack";
    internal static int YSPEED_WALK=40;
    internal static int XSPEED_RUN=300;
    internal static int XSPEED_WALK=80;
    internal static int GLOBAL_Y_WIDTH=12;
}

public static class DefineConstantsGame_AI
{
	public static LCUI_BOOL FALSE;
	public static LCUI_BOOL TRUE;
    internal const int MAX_ACTION_NUM=5;
	internal const int MAX_STRATEGY_NUM = 39;
	internal const int RANGE_MAX = -1;

	internal const int GLOBAL_Y_WIDTH = 12;
	internal const int MAX_FRAME_NUM = 10;
}

public static class DefineConstantsGame_action
{
	public static LCUI_BOOL FALSE;
	public static LCUI_BOOL TRUE;
	public const int MAX_FRAME_NUM = 10;

	public static string ACTION_RES_CLASS_RIKI = "graphics::action::riki";
	public static string ACTION_RES_CLASS_KUNI = "graphics::action::kuni";
	public static string ACTION_RES_CLASS_MIKE = "graphics::action::mike";
	public static string ACTION_RES_CLASS_BEN = "graphics::action::ben";
	public static string ACTION_RES_CLASS_TORAJI = "graphics::action::toraji";
	public static string MAIN_RES = "graphics::main";
	public static string SCENES_RES = "graphics::senes";
	public static string FONT_RES = "graphics::font";
}

public static class DefineConstantsGame_attack
{
	public static LCUI_BOOL FALSE=false;
	public static LCUI_BOOL TRUE=true;
	public const int MAX_FRAME_NUM = 10;
	public const int NAME_MAX_LEN = 64;

}

public static class DefineConstantsGame_battle
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
	public static string MAIN_RES = "graphics::main";
    internal static int MAX_SKILL_NUM =10;

	public static string SKILLNAME_A_ATTACK = "A attack";
	public static string SKILLNAME_B_ATTACK = "B attack";
	public static string SKILLNAME_DEFENSE = "defense";
	public static string SKILLNAME_SOLID_DEFENSE = "solid defense";
	public static string SKILLNAME_JUMP = "jump";
	public static string SKILLNAME_JUMP_A_ATTACK = "jump A attack";
	public static string SKILLNAME_JUMP_B_ATTACK = "jump B attack";
	public static string SKILLNAME_JUMP_MACH_A_ATTACK = "jump mach A attack";
	public static string SKILLNAME_JUMP_MACH_B_ATTACK = "jump mach B attack";
	public static string SKILLNAME_SPRINT_A_ATTACK = "sprint A attack";
	public static string SKILLNAME_SPRINT_B_ATTACK = "sprint B attack";
	public static string SKILLNAME_SPRINT_JUMP_A_ATTACK = "sprint jump A attack";
	public static string SKILLNAME_SPRINT_JUMP_B_ATTACK = "sprint jump B attack";
	public static string SKILLNAME_MACH_A_ATTACK = "mach A attack";
	public static string SKILLNAME_MACH_B_ATTACK = "mach B attack";
	public static string SKILLNAME_A_FINALBLOW = "A final blow";
	public static string SKILLNAME_B_FINALBLOW = "B final blow";
	public static string SKILLNAME_JUMP_ELBOW = "jump elbow";
	public static string SKILLNAME_JUMP_TREAD = "jump tread";
	public static string SKILLNAME_A_LIFT = "A lift";
	public static string SKILLNAME_B_LIFT = "B lift";
	public static string SKILLNAME_A_THROW = "A throw";
	public static string SKILLNAME_B_THROW = "B throw";
	public static string SKILLNAME_MACH_STOMP = "mach stomp";
	public static string SKILLNAME_BOMBKICK = "bomb kick";
	public static string SKILLNAME_SPINHIT = "spin hit";
	public static string SKILLNAME_RIDE = "ride";
	public static string SKILLNAME_RIDE_A_ATTACK = "ride A attack";
	public static string SKILLNAME_RIDE_B_ATTACK = "ride B attack";
	public static string SKILLNAME_CATCH = "catch";
	public static string SKILLNAME_BIG_ELBOW = "big elbow";
	public static string SKILLNAME_GUILLOTINE = "guillotine";
	public static string SKILLNAME_PUSH = "push";
	public static string SKILLNAME_JUMP_SPINKICK = "jump spin kick";
	public static string SKILLNAME_TORNADO_ATTACK = "tornado_attack";

	public static string SKILLNAME_HUG_FRONT_PUT = "hug front put";
	public static string SKILLNAME_HUG_BACK_PUT	=	"hug back put";
	public static string SKILLNAME_ELBOW = "elbow";
	public static string SKILLNAME_KNEEHIT = "knee hit";
	public static string SKILLNAME_HUG_JUMP = "hug jump";
	public static string SKILLNAME_LIFT_JUMP = "lift jump";
	public static string SKILLNAME_JUDO = "judo";
	public static string SKILLNAME_BACK_JUDO = "back judo";
	public static string ATK_SPIN_DRILL = "spin drill attack";
	public static string SKILLNAME_SPIN_DRILL = "spin drill";

	public const int GAME_SCREEN_WIDTH = 800;
	public const int GAME_SCREEN_HEIGHT = 600;
	public const int STATUS_BAR_HEIGHT = 90;	/**< 游戏角色的状态信息区域的高度 */
}

public class DefineConstantsGame_role_select: DefineConstantsGame_control
{

}


public class DefineConstantsGame_object 
{
	public static LCUI_BOOL FALSE=false;
	public static LCUI_BOOL TRUE=true;
    internal static int ACTION_STATE_PLAY=1;
    internal static int ACTION_STATE_PAUSE=0;
    internal static int REFRESH_INTERVAL_TIME=20;
    internal static double FRAMES_PER_SEC=50;
}

public class DefineConstantsGame_space
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
	internal static int FRAMES_PER_SEC = 50;
}

public static class DefineConstantsMain_menu
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;

	public static int ITEM_BOX_HEIGHT = 50;
	//public string    LOGOBTN_SIZE Size(116,116);

	public static string    TEXT_SINGLE_GAME	="单人游戏";
	public static string    TEXT_NETWORK_BATTLE	="联机对战";
	public static string TEXT_OPTIONS		="选项";
	public static string TEXT_HELP = "帮助";
	public static string TEXT_QUIT = "退出";

	public static string TEXT_2V2_GAME    = "2v2对战";
	public static string TEXT_SCUFFLE_GAME = "4人混战";

	public static string TEXT_SET_KEYBOARD = "键位设置";
	public static string TEXT_WINDOWED = "窗口模式";
	public static string TEXT_ON = "开";
	public static string TEXT_OFF = "关";

	public static string TEXT_USAGE = "操作方法";
	public static string TEXT_ABOUT = "关于本游戏";
	public static string TEXT_LICENSE = "许可协议";
	public static string TEXT_JOINUS = "加入我们";

	public static string TEXT_QUIT_TIP_TEXT = "你确定要退出游戏？";
	public static string TEXT_QUIT_TIP_TITLE = "提示";

	//public string    SIZE_MAIN_MENU_BOX	Size(150,180)
	//public string    SIZE_GAME_MENU_BOX	Size(150,75)
	//public string    SIZE_HELP_MENU_BOX	Size(150,145)
	//public string    SIZE_OPTIONS_MENU_BOX	Size(150,75)

	//public string    COLOR_RED	{255,78,0}
	//public string    COLOR_ORANGE	{255,197,2}
	//public string    COLOR_GREEN	{76,133,2}
	//public string    COLOR_BLUE	{0,156,255}
	//public string    COLOR_PURPLE	{161,159,234}

	public static int TOTAL_COLOR_NUM = 5;

	public static string MAIN_RES = "graphics::main";
}

public static class DefineConstantsGame_resource
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
	internal static int MAX_TEXT_LEN=256;
	internal static int MAX_MARK_TEXT_LEN = 64;
	internal static string HEADER_MARK_TEXT = "LC-GAMES Graphics Resource File";
	internal static string BLOCK_MARK_TEXT = "LC-GAMES Graphics Data Block";
}

public static class DefineConstantsGame_statusbar
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
	internal static int MAX_TEXT_LEN = 256;
	internal static int MAX_MARK_TEXT_LEN = 64;
	internal static string TYPE_NAME = "GamePlayerStatusBar";
	internal static string BLOCK_MARK_TEXT = "LC-GAMES Graphics Data Block";
}



	public static class DefineConstantsGame_skill
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
	internal static int MAX_TEXT_LEN = 256;
	internal static int MAX_MARK_TEXT_LEN = 64;

	public static string SKILLNAME_A_ATTACK = "A attack";
	public static string SKILLNAME_B_ATTACK = "B attack";
	public static string SKILLNAME_DEFENSE = "defense";
	public static string SKILLNAME_SOLID_DEFENSE = "solid defense";
	public static string SKILLNAME_JUMP = "jump";
	public static string SKILLNAME_JUMP_A_ATTACK = "jump A attack";
	public static string SKILLNAME_JUMP_B_ATTACK = "jump B attack";
	public static string SKILLNAME_JUMP_MACH_A_ATTACK = "jump mach A attack";
	public static string SKILLNAME_JUMP_MACH_B_ATTACK = "jump mach B attack";
	public static string SKILLNAME_SPRINT_A_ATTACK = "sprint A attack";
	public static string SKILLNAME_SPRINT_B_ATTACK = "sprint B attack";
	public static string SKILLNAME_SPRINT_JUMP_A_ATTACK = "sprint jump A attack";
	public static string SKILLNAME_SPRINT_JUMP_B_ATTACK = "sprint jump B attack";
	public static string SKILLNAME_MACH_A_ATTACK = "mach A attack";
	public static string SKILLNAME_MACH_B_ATTACK = "mach B attack";
	public static string SKILLNAME_A_FINALBLOW = "A final blow";
	public static string SKILLNAME_B_FINALBLOW = "B final blow";
	public static string SKILLNAME_JUMP_ELBOW = "jump elbow";
	public static string SKILLNAME_JUMP_TREAD = "jump tread";
	public static string SKILLNAME_A_LIFT = "A lift";
	public static string SKILLNAME_B_LIFT = "B lift";
	public static string SKILLNAME_A_THROW = "A throw";
	public static string SKILLNAME_B_THROW = "B throw";
	public static string SKILLNAME_MACH_STOMP = "mach stomp";
	public static string SKILLNAME_BOMBKICK = "bomb kick";
	public static string SKILLNAME_SPINHIT = "spin hit";
	public static string SKILLNAME_RIDE = "ride";
	public static string SKILLNAME_RIDE_A_ATTACK = "ride A attack";
	public static string SKILLNAME_RIDE_B_ATTACK = "ride B attack";
	public static string SKILLNAME_CATCH = "catch";
	public static string SKILLNAME_BIG_ELBOW = "big elbow";
	public static string SKILLNAME_GUILLOTINE = "guillotine";
	public static string SKILLNAME_PUSH = "push";
	public static string SKILLNAME_JUMP_SPINKICK = "jump spin kick";
	public static string SKILLNAME_TORNADO_ATTACK = "tornado_attack";
}

public static class DefineConstantsGameres_kunio
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;

	internal static int GLOBAL_Y_WIDTH = 12;
	internal static int MAX_FRAME_NUM = 10;
}


public static class DefineConstantsSkills_fighter
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;

	internal static string SKILLNAME_HUG_FRONT_PUT = "hug front put";
	internal static string SKILLNAME_HUG_BACK_PUT = "hug back put";

	internal static string ATK_HUG_FRONT_PUT = "hug front put attack";
	internal static string ATK_HUG_BACK_PUT = "hug back put attack";
    internal static int SHORT_REST_TIMEOUT=2000;

	internal static int XSPEED_BOUNCE = 100;
    internal static int ZSPEED_BOUNCE = 100;
    internal static int ZACC_BOUNCE = 500;

	internal static int XSPEED_FRONT_PUT = 100;
	internal static int ZSPEED_FRONT_PUT = 100;
	internal static int ZACC_FRONT_PUT = 100;

	internal static int ZACC_JUMP = 1500;
}


public static class DefineConstantsGame_msg
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
}

public static class DefineConstantsSkills_common
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;

	

	internal static string SKILLNAME_HUG_FRONT_PUT = "hug front put";
	internal static string SKILLNAME_HUG_BACK_PUT = "hug back put";

	internal static string ATK_HUG_FRONT_PUT = "hug front put attack";
	internal static string ATK_HUG_BACK_PUT = "hug back put attack";

	internal static string ATK_NONE = "none";
	internal static string ATK_THROW = "throw attack";
	internal static string ATK_RIDE_A_ATTACK = "ride A attack";
	internal static string ATK_RIDE_B_ATTACK = "ride B attack";
	internal static string ATK_BUMPED = "bumped attack";
	internal static string ATK_BUMPED2 = "bumped attack, no effcet";
	internal static string ATK_FINALBLOW = "final blow attack";
	internal static string ATK_SPRINT_JUMP_A_ATTACK = "sprint jump A attack";
	internal static string ATK_SPRINT_JUMP_B_ATTACK = "sprint jump B attack";
	internal static string ATK_A_ATTACK = "A attack";
	internal static string ATK_B_ATTACK = "B attack";
	internal static string ATK_SPRINT_A_ATTACK = "sprint A attack";
	internal static string ATK_SPRINT_B_ATTACK = "sprint B attack";
	internal static string ATK_MACH_A_ATTACK = "mach A attack";
	internal static string ATK_MACH_B_ATTACK = "mach B attack";
	internal static string ATK_JUMP_TREAD = "jump tread attack";
	internal static string ATK_JUMP_ELBOW = "jump elbow attack";
	internal static string ATK_MACH_STOMP = "mach stomp attack";
	internal static string ATK_JUMP_A_ATTACK = "jump A attack";
	internal static string ATK_JUMP_B_ATTACK = "jump A attack";
	internal static string ATK_JUMP_MACH_A_ATTACK = "jump mach A attack";
	internal static string ATK_JUMP_MACH_B_ATTACK = "jump mach A attack";
	internal static string ATK_BOMBKICK = "bomb kick attack";
	internal static string ATK_SPINHIT = "spin hit attack";
	internal static string ATK_SPINHIT_2 = "second spin hit attack";
	internal static string ATK_BIG_ELBOW = "big elbow attack";
	internal static string ATK_GUILLOTINE = "guillotine attack";
	internal static string ATK_JUMP_SPINKICK = "jump spin kick attack";

	internal static int GLOBAL_Y_WIDTH = 12;
	internal static int MAX_FRAME_NUM = 10;

	internal static int XSPEED_RUN = 300;
	internal static int XSPEED_WALK = 80;
	internal static int YSPEED_WALK = 40;
	internal static int XACC_DASH = 1500;
	internal static int ZSPEED_JUMP = 500;
	internal static int ZACC_JUMP = 1500;

	internal static int SHORT_REST_TIMEOUT = 2000;
	internal static int LONG_REST_TIMEOUT = 3000;
	internal static int BE_THROW_REST_TIMEOUT = 500;
	internal static int BE_LIFT_REST_TIMEOUT = 4500;

	internal static int XSPEED_S_HIT_FLY = 500;
	internal static int ZACC_S_HIT_FLY = 1000;
	internal static int ZSPEED_S_HIT_FLY = 200;

	internal static int XSPEED_WEAK_WALK = 200;
	internal static int WEAK_WALK_TIMEOUT = 2500;

	internal static int XSPEED_X_HIT_FLY = 500;
	internal static int ZACC_XB_HIT_FLY = 1500;
	internal static int ZSPEED_XB_HIT_FLY = 300;
	internal static int ZACC_XF_HIT_FLY = 3000;
	internal static int ZSPEED_XF_HIT_FLY = 800;

	internal static int XSPEED_X_HIT_FLY2 = 100;
	internal static int ZACC_XF_HIT_FLY2 = 1000;
	internal static int ZSPEED_XF_HIT_FLY2 = 200;

	internal static int XSPEED_HIT_FLY = 200;
	internal static int ZSPEED_HIT_FLY = 600;
	internal static int ZACC_HIT_FLY = 2000;

	internal static int XSPEED_THROWUP_FLY = 400;
	internal static int XSPEED_THROWDOWN_FLY = 1000;
	internal static int ZSPEED_THROWUP_FLY = 500;
	internal static int ZSPEED_THROWDOWN_FLY = 1000;
	internal static int ZACC_THROWUP_FLY = 2000;
	internal static int ZACC_THROWDOWN_FLY = 2000;

	internal static int XSPEED_SPINHIT = 600;
	internal static int ZSPEED_SPINHIT = 200;
	internal static int ZACC_SPINHIT = 550;

	internal static int XSPEED_BOMBKICK = 800;
	internal static int ZSPEED_BOMBKICK = 200;
	internal static int ZACC_BOMBKICK = 800;

	internal static int ZSPEED_BOUNCE = 200;
	internal static int ZACC_BOUNCE = 800;

	internal static int ROLL_TIMEOUT = 200;


	internal static int ZSPEED_SPINHIT_2 = 550;
	internal static int ZACC_SPINHIT_2 = 1000;
	internal static int XSPEED_SPINHIT_2 = 300;

	/** 可擒获范围的水平宽度 */
	internal static int CATCH_RANGE_X_WIDTH = 50;

	internal static int XSPEED_BE_PUSH = 100;
	internal static int YSPEED_BE_PUSH = 100;
	internal static int YACC_BE_PUSH = 1000;

	internal static int LIFT_HEIGHT = 56;

	public static string SKILLNAME_A_ATTACK = "A attack";
	public static string SKILLNAME_B_ATTACK = "B attack";
	public static string SKILLNAME_DEFENSE = "defense";
	public static string SKILLNAME_SOLID_DEFENSE = "solid defense";
	public static string SKILLNAME_JUMP = "jump";
	public static string SKILLNAME_JUMP_A_ATTACK = "jump A attack";
	public static string SKILLNAME_JUMP_B_ATTACK = "jump B attack";
	public static string SKILLNAME_JUMP_MACH_A_ATTACK = "jump mach A attack";
	public static string SKILLNAME_JUMP_MACH_B_ATTACK = "jump mach B attack";
	public static string SKILLNAME_SPRINT_A_ATTACK = "sprint A attack";
	public static string SKILLNAME_SPRINT_B_ATTACK = "sprint B attack";
	public static string SKILLNAME_SPRINT_JUMP_A_ATTACK = "sprint jump A attack";
	public static string SKILLNAME_SPRINT_JUMP_B_ATTACK = "sprint jump B attack";
	public static string SKILLNAME_MACH_A_ATTACK = "mach A attack";
	public static string SKILLNAME_MACH_B_ATTACK = "mach B attack";
	public static string SKILLNAME_A_FINALBLOW = "A final blow";
	public static string SKILLNAME_B_FINALBLOW = "B final blow";
	public static string SKILLNAME_JUMP_ELBOW = "jump elbow";
	public static string SKILLNAME_JUMP_TREAD = "jump tread";
	public static string SKILLNAME_A_LIFT = "A lift";
	public static string SKILLNAME_B_LIFT = "B lift";
	public static string SKILLNAME_A_THROW = "A throw";
	public static string SKILLNAME_B_THROW = "B throw";
	public static string SKILLNAME_MACH_STOMP = "mach stomp";
	public static string SKILLNAME_BOMBKICK = "bomb kick";
	public static string SKILLNAME_SPINHIT = "spin hit";
	public static string SKILLNAME_RIDE = "ride";
	public static string SKILLNAME_RIDE_A_ATTACK = "ride A attack";
	public static string SKILLNAME_RIDE_B_ATTACK = "ride B attack";
	public static string SKILLNAME_CATCH = "catch";
	public static string SKILLNAME_BIG_ELBOW = "big elbow";
	public static string SKILLNAME_GUILLOTINE = "guillotine";
	public static string SKILLNAME_PUSH = "push";
	public static string SKILLNAME_JUMP_SPINKICK = "jump spin kick";
	public static string SKILLNAME_TORNADO_ATTACK = "tornado_attack";
}

public static class DefineConstantsGame_config
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;

	internal static KeyCode LCUIKEY_J=KeyCode.J;
    internal static KeyCode LCUIKEY_K= KeyCode.K;
	internal static KeyCode LCUIKEY_L = KeyCode.L ;
	internal static KeyCode LCUIKEY_SPACE = KeyCode.Space;
	internal static KeyCode LCUIKEY_A = KeyCode.A;
	internal static KeyCode LCUIKEY_D = KeyCode.D;
	internal static KeyCode LCUIKEY_W = KeyCode.W;
	internal static KeyCode LCUIKEY_S = KeyCode.S;
}

public static class DefineConstantsMain
{
	public static LCUI_BOOL FALSE = false;
	public static LCUI_BOOL TRUE = true;
    internal static string SCENES_RES="graphics::senes";
}

public class MySkillBase: GlobalMembersGame_control
{

}